package top.zhangjianyong.tools.service.api;

import org.springframework.web.multipart.MultipartFile;
import top.zhangjianyong.tools.utils.ApiResponse;
import top.zhangjianyong.tools.vo.DailyBill;

import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.YearMonth;
import java.util.List;

public interface BillService {

    /**
     * 上传对账文件
     * @param password
     * @param file
     * @return
     * @throws IOException
     */
    ApiResponse upload(String password, MultipartFile file) throws IOException;

    /**
     * 读取对账文件
     * @param billFileId
     * @return
     * @throws IOException
     */
    ApiResponse readFile(Long billFileId) throws IOException;

    /**
     * 日账单
     *
     * @return
     */
    ApiResponse daily();

    List<DailyBill> daily(LocalDateTime start, LocalDateTime end);
    /**
     * 月账单
     *
     * @return
     */
    ApiResponse month();

    ApiResponse dates();

    ApiResponse rank(LocalDate date, String platform, String inOrOut, int page, int size);

    ApiResponse rank(YearMonth month, String platform, String inOrOut, int page, int size);

    ApiResponse reload();


    ApiResponse list();

    ApiResponse del(Long billFileId);
}
